/**
 * 泛型类:   class也可以配合泛型来使用
 */


class GenericNumber<NumType> {
    defaultValue: NumType
    add: (x:NumType,y:NumType) => NumType

    constructor(value:NumType) {
        this.defaultValue = value
    }

}


// const myNum = new GenericNumber<number>()
const myNum = new GenericNumber<number>(100)

myNum.defaultValue = 10 // number类型


// --
// class GenericNumber<NumType> {
//     defaultValue: NumType
//     add: (x:NumType,y:NumType) => NumType

// }


// const myNum = new GenericNumber<number>()
// myNum.defaultValue = 10 // number类型


// 解释
// 1.类似于泛型接口, 在class名称后面添加 <类型变量>, 这个类就变成了泛型类
// 2.此处的add方法,采用的是箭头函数形式的类书写方式
// 注意:类似与泛型接口,在创建class时,在类名后面通过<类型>来指定明确的类型
















